#include<bits/stdc++.h>
using namespace std;
#include <stack>  
int judge(char a,char b);
void print(char ch);
int main()
{
	char str[10000],e,ch='a',ch1;
	int i=0,flag=0;
	stack <char> S;
	while(1){
		scanf("%c",&e);
		if(ch=='.'&&e=='\n'){
			break;
		}
		else if(ch>='0'&&ch<='9'&&e=='*'){
			continue;
		}
		else if(e=='/'||e=='*'||e=='('||e==')'||e=='['||e==']'||e=='{'||e=='}'){
			str[i]=e;
			i++;
		}
		ch=e;
	}
	str[i]='\0'; 
	for(i=0;str[i];i++){
		if(flag==1) break;
		if(str[i]=='('||str[i]=='['||str[i]=='{'){
			S.push(str[i]);
		}
		else if(str[i]=='/'&&str[i+1]=='*'){
			i++;
			S.push('<');
		}
		else if(str[i]==')'){
			if(!S.empty()&&S.top()=='(') S.pop();
			else {
				flag=1;
				cout<<"NO"<<endl;
				if(S.empty()){
					printf("?-)");
				}
				else if(judge(S.top(),str[i+1])==1){
					printf("?-)");
				} 
				else if(judge(S.top(),str[i+1])==-1){
					print(S.top());
				}
				break;
			}
		}
		else if(str[i]==']'){
			if(!S.empty()&&S.top()=='[') S.pop();
			else {
				flag=1;
				cout<<"NO"<<endl;
				if(S.empty()){
					printf("?-]");
				}
				else if(judge(S.top(),str[i+1])==1){
					printf("?-]");
				}
				else if(judge(S.top(),str[i+1])==-1){
					print(S.top());
				}
				break;
			}
		}
		else if(str[i]=='}'){
			if(!S.empty()&&S.top()=='{') S.pop();
			else {
				flag=1;
				cout<<"NO"<<endl;
				if(S.empty()){
					printf("?-}");
				}
				else if(judge(S.top(),str[i+1])==1){
					printf("?-}");
				} 
				else if(judge(S.top(),str[i+1])==-1){
					print(S.top());
				}
				break;
			}
		}
		else if(str[i]=='*'&&str[i+1]=='/'){
			i++;
			if(!S.empty()&&S.top()=='<') S.pop();
			else {
				flag=1;
				cout<<"NO"<<endl;
				if(S.empty()){
					printf("?-*/");
				}
				else if(judge(S.top(),'>')==1){
					printf("?-*/");
				} 
				else if(judge(S.top(),'>')==-1){
					print(S.top());
				}
				break;
			}
		}
	}
	if(S.empty()&&flag==0) cout<<"YES";
	else if(flag==0) {
		cout<<"NO"<<endl;
		while(S.size()!=1){
			S.pop();
		}
		print(S.top());
	}
}
int judge(char a,char b){
	if(a=='('){
		if(b==')') return 1;
		else return -1;
	}
	else if(a=='{'){
		if(b=='}') return 1;
		else return -1;
	}
	else if(a=='['){
		if(b==']') return 1;
		else return -1;
	}
	else if(a=='<'){
		if(b=='>') return 1;
		else return -1;
	}
}
void print(char ch) {  
    if(ch == '(') printf("(-?");  
    else if(ch == '[') printf("[-?");  
    else if(ch == '{') printf("{-?");  
    else if(ch == '<') printf("/*-?");  
}  
